#ifndef PARSER_H_INCLUDED
#define PARSER_H_INCLUDED
#include "Scanner.h"
#include "CodeGenerator.h"

int generateCode;
object_t procedureContext;

/* Parser */
void initParser(char ptr filename, int createCode);
void clearParser();
void primeval();
void involvement();
void sequences();
void sequenceList();
void statementSequence();
void statement(object_t o);
item_t expression();
item_t simpleExpression();
item_t term();
item_t factor();
void selector(item_t item);
void whileStatement(object_t o);
void ifStatement(object_t o);
void actualParameters();
void declaration();
void fieldDeclaration(symTab_t symTab);
void identList();
object_t identDeclaration(type_t type, int class);
void identListFields(type_t type, symTab_t symTab);
void fieldIdentList();
void structure();
void procedureDeclaration();
void typeDeclaration();
type_t type();
type_t structType();
void body(object_t o);
void formalParameters(object_t object);

#endif // PARSER_H_INCLUDED
